package com.ynet.middleground.riskmanage.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.riskmanage.bean.InvoiceStatisticQueryReqPager;
import com.ynet.middleground.riskmanage.bean.InvoiceValidateOCRReq;
import com.ynet.middleground.riskmanage.bean.InvoiceValidateReq;
import com.ynet.middleground.riskmanage.dto.InvoiceInfoDTO;
import com.ynet.middleground.riskmanage.dto.InvoiceStatisticDTO;

/**
 * @author liulx
 * @description 发票验真接口服务定义
 * @date 2020-04-20 13:42
 */
public interface InvoiceValidService {

    /**
     * 发票基础查验
     * 
     * @param req 发票基础查验请求信息
     * @return
     */
    ServiceResult<InvoiceInfoDTO> baseValid(@Valid InvoiceValidateReq req);

    /**
     * OCR 发票查验
     * 
     * @param req OCR 发票查验请求信息
     * @return
     */
    ServiceResult<InvoiceInfoDTO> ocrValid(@Valid InvoiceValidateOCRReq req);

    /**
     * 发票统计查询
     * 
     * @param req 发票统计查询请求信息
     * @return 统计查询结果列表
     */
    ServiceResult<List<InvoiceStatisticDTO>> tatisticQuery(@Valid InvoiceStatisticQueryReqPager req);

    /**
     * 发票统计查询，内管专用
     *
     * @param req 发票统计查询请求信息
     * @return 统计查询结果列表
     */
    ServiceResult<List<InvoiceStatisticDTO>> tatisticQueryForPortAdmin(@Valid InvoiceStatisticQueryReqPager req);

}
